#ifndef __ZOMBIE_H__
#define __ZOMBIE_H__

#include "OpenSteer/SimpleVehicle.h"
#include "OpenSteer/OpenSteerDemo.h"
#include "OpenSteer/Color.h"
#include "OpenSteer/Proximity.h"
#include "Human.h"

#define MAXDISTANCE 7.0f				// Separación máxima de la Swarm
#define MINDISTANCE 4.0f				// Separación mínima para perseguir
#define MAXRADIUS 7.0f					// Radio de vecinidad
#define MINTIMETOCOLLISION 3.0f // Parametro para evitar colisiones

typedef	OpenSteer::
	AbstractProximityDatabase<OpenSteer::AbstractVehicle*> ProximityDatabase;

typedef	OpenSteer::
	AbstractTokenForProximityDatabase<OpenSteer::AbstractVehicle*> ProximityToken;

class ZombieSwarm;

class Zombie : public OpenSteer::SimpleVehicle {

	private:

		ZombieSwarm* _pSwarm;

		Human* _pHuman;

		ProximityToken* _proximityToken;

		static OpenSteer::AVGroup _neighbors;

	public:

		Zombie(ZombieSwarm*, Human*, ProximityDatabase&);

		void reset();

		void update(const float, const float);

		OpenSteer::Vec3 steerForZombie(const float);

		void draw();

};

#endif

